package com.dhecp.project.business.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.dhecp.core.genericDao.GenericDao;
import com.dhecp.project.business.domain.ProductHistory;
import com.dhecp.project.common.domain.DataBaseMessage;

/**
 * 产品表 数据层
 * @author lwl
 * @version
 */
public interface ProductHistoryMapper extends GenericDao<ProductHistory, String>{

	/**
	 * 查询所有产品信息
	 * @param parems
	 * @return 实体ProductInfo
	 */
	List<ProductHistory> findProductInfo(Map<String, Object> params);
	
	/**
     * 通过guid查询单条记录
     * @param guid
     * @return 实体ProductInfo
     * @author DH-lwl
     */
	ProductHistory findProductInfoByGuid(@Param("guid") String guid);
	
	/**
     * 查询产品有是否重复
     * @param guid
     * @return 实体ProductInfo
     * @author DH-lwl
     */
	ProductHistory findProductInfoByGBrand(ProductHistory productHistory);
	
	/**
     * 查询产品有是否重复（不包括当前产品）
     * @param guid
     * @return 实体ProductInfo
     * @author DH-lwl
     */
	ProductHistory findProductInfoByGBrandAndGuid(ProductHistory productHistory);
	
	/**
	 * 清理产品导入过渡表中遗留的数据
	 * @param sessionId
	 * @return DataBaseMessage
	 * @author DH-Xxj
	 */
	DataBaseMessage cleanProductInfoImport(Map<String, Object> params);

	/**
	 * 将本次导入的产品数据从产品导入过渡表中转入产品信息正式表
	 * @param sessionId
	 * @param records
	 * @return DataBaseMessage
	 * @author DH-Xxj
	 */
	DataBaseMessage importToProductInfo(Map<String, Object> params);
	
	/**
	 * 新增产品信息
	 * @param productHistory
	 * @return
	 */
	int insertProductInfo(ProductHistory productHistory);
	
	/**
	 * 导入产品信息至产品信息过渡表
	 * @param productHistory
	 * @return
	 */
	int importProductInfo(ProductHistory productHistory);
	
	/**
     * 修改产品信息
     * @param productHistory
     * @return
     */
	int updateProduct(ProductHistory productHistory);
	
	/**
	 * 通过guid删除产品信息
	 * @param productHistory
	 * @return
	 */
	int deleteByGuid(ProductHistory productHistory);
	
}
